class A
{
    public void f()
    {
        System.out.printf("AAAA\n");
    }
}
class B extends A
{
    public void f()
    {
        System.out.printf("BBBB\n");
    }
}
class C extends B
{
    public void f()
    {
        System.out.printf("CCCC\n");
    }
}
public class TestPoly_1
{
    public static void g(A aa)
    {
        aa.f();
    }
    public static void main(String[] args)
    {
        A aa = new A();
        B bb = new B();
        C cc = new C();
        g(aa);
        g(bb);
        g(cc);
    }
}
/*
输出结果为：
    AAAA
    BBBB
    CCCC
    证明了 g() 函数里面同一条语句在不同情况下输出了不同的结果，这就是多态
    多态不是简单的函数调用，因为A B C 是三种不同的类
    但是在函数定义时，要把父类定义在前面
*/